package com.ourteam.product.requirement.domain;
/**
 * Template Name : DTO数据对象 Template Version : 1 Template Last Modfiy Date : Fri Nov 30 16:49:33 CST
 * 2018 Auto Generate Date : 2018-12-11 15:24:19 Warning ! This file will be overwrite when
 * regenerate !
 */
import java.util.HashMap;
import java.util.Map;
import net.dao.IDataPopulateCallback;
import org.apache.commons.beanutils.BeanMap;
import org.apache.commons.lang.ArrayUtils;

public class ProductRequirementFeatureRelateBean implements java.io.Serializable {

  private static Map<String, String> mappedDaoFields = new HashMap<String, String>();

  private com.ourteam.product.requirement.dao.ProductRequirementFeatureRelate
      productRequirementFeatureRelate;

  protected BeanMap getBeanMap() {

    return new BeanMap(productRequirementFeatureRelate);
  }

  static {
    mappedDaoFields.put(
        "id", com.ourteam.product.requirement.dao.IProductRequirementFeatureRelateDAO.Id);

    mappedDaoFields.put(
        "productRequirementId",
        com.ourteam.product.requirement.dao.IProductRequirementFeatureRelateDAO
            .ProductRequirementId);

    mappedDaoFields.put(
        "productFeatureId",
        com.ourteam.product.requirement.dao.IProductRequirementFeatureRelateDAO.ProductFeatureId);

    mappedDaoFields.put(
        "status", com.ourteam.product.requirement.dao.IProductRequirementFeatureRelateDAO.Status);

    mappedDaoFields.put(
        "remarks", com.ourteam.product.requirement.dao.IProductRequirementFeatureRelateDAO.Remarks);

    mappedDaoFields.put(
        "productRequirementCode",
        com.ourteam.product.requirement.dao.IProductRequirementFeatureRelateDAO
            .ProductRequirementCode);

    mappedDaoFields.put(
        "productRequirementName",
        com.ourteam.product.requirement.dao.IProductRequirementFeatureRelateDAO
            .ProductRequirementName);

    mappedDaoFields.put(
        "productRequirementContent",
        com.ourteam.product.requirement.dao.IProductRequirementFeatureRelateDAO
            .ProductRequirementContent);

    mappedDaoFields.put(
        "productRequirementType",
        com.ourteam.product.requirement.dao.IProductRequirementFeatureRelateDAO
            .ProductRequirementType);

    mappedDaoFields.put(
        "productRequirementLevel",
        com.ourteam.product.requirement.dao.IProductRequirementFeatureRelateDAO
            .ProductRequirementLevel);

    mappedDaoFields.put(
        "productFeatureCode",
        com.ourteam.product.requirement.dao.IProductRequirementFeatureRelateDAO.ProductFeatureCode);

    mappedDaoFields.put(
        "productFeatureName",
        com.ourteam.product.requirement.dao.IProductRequirementFeatureRelateDAO.ProductFeatureName);

    mappedDaoFields.put(
        "productFeatureCanTest",
        com.ourteam.product.requirement.dao.IProductRequirementFeatureRelateDAO
            .ProductFeatureCanTest);

    mappedDaoFields.put(
        "productFeatureIsKeyFeature",
        com.ourteam.product.requirement.dao.IProductRequirementFeatureRelateDAO
            .ProductFeatureIsKeyFeature);

    mappedDaoFields.put(
        "productRequirementKind",
        com.ourteam.product.requirement.dao.IProductRequirementFeatureRelateDAO
            .ProductRequirementKind);

    mappedDaoFields.put(
        "productRequirementSource",
        com.ourteam.product.requirement.dao.IProductRequirementFeatureRelateDAO
            .ProductRequirementSource);

    mappedDaoFields.put(
        "productRequirementVersion",
        com.ourteam.product.requirement.dao.IProductRequirementFeatureRelateDAO
            .ProductRequirementVersion);

    mappedDaoFields.put(
        "productRequirementVersionType",
        com.ourteam.product.requirement.dao.IProductRequirementFeatureRelateDAO
            .ProductRequirementVersionType);

    mappedDaoFields.put(
        "productFeatureVersion",
        com.ourteam.product.requirement.dao.IProductRequirementFeatureRelateDAO
            .ProductFeatureVersion);

    mappedDaoFields.put(
        "productFeatureVersionType",
        com.ourteam.product.requirement.dao.IProductRequirementFeatureRelateDAO
            .ProductFeatureVersionType);

    mappedDaoFields.put(
        "productRequirementVersionId",
        com.ourteam.product.requirement.dao.IProductRequirementFeatureRelateDAO
            .ProductRequirementVersionId);

    mappedDaoFields.put(
        "productFeatureVersionId",
        com.ourteam.product.requirement.dao.IProductRequirementFeatureRelateDAO
            .ProductFeatureVersionId);

    mappedDaoFields.put(
        "productRequirementVersionStatus",
        com.ourteam.product.requirement.dao.IProductRequirementFeatureRelateDAO
            .ProductRequirementVersionStatus);

    mappedDaoFields.put(
        "productFeatureVersionStatus",
        com.ourteam.product.requirement.dao.IProductRequirementFeatureRelateDAO
            .ProductFeatureVersionStatus);
  }

  public static String getMappedDAOField(String aAttrName) {
    return mappedDaoFields.get(aAttrName);
  }

  public ProductRequirementFeatureRelateBean() {
    super();

    this.productRequirementFeatureRelate =
        new com.ourteam.product.requirement.dao.ProductRequirementFeatureRelate();
  }

  public ProductRequirementFeatureRelateBean(
      com.ourteam.product.requirement.dao.ProductRequirementFeatureRelate
          productRequirementFeatureRelate) {
    super();

    this.productRequirementFeatureRelate = productRequirementFeatureRelate;
  }

  public com.ourteam.product.requirement.dao.ProductRequirementFeatureRelate
      convertToProductRequirementFeatureRelate() {
    return this.productRequirementFeatureRelate;
  }

  public com.ourteam.product.requirement.dao.ProductRequirementFeatureRelate convertTo() {
    return this.productRequirementFeatureRelate;
  }

  /**
   * Get id
   *
   * @return long
   */
  public long getId() {
    return (long) this.productRequirementFeatureRelate.getId();
  }

  /**
   * Set id
   *
   * @parameter long
   */
  public void setId(long id) {

    this.productRequirementFeatureRelate.setId(id);
  }

  /**
   * Get productRequirementId
   *
   * @return long
   */
  public long getProductRequirementId() {
    return (long) this.productRequirementFeatureRelate.getProductRequirementId();
  }

  /**
   * Set productRequirementId
   *
   * @parameter long
   */
  public void setProductRequirementId(long productRequirementId) {

    this.productRequirementFeatureRelate.setProductRequirementId(productRequirementId);
  }

  /**
   * Get productFeatureId
   *
   * @return long
   */
  public long getProductFeatureId() {
    return (long) this.productRequirementFeatureRelate.getProductFeatureId();
  }

  /**
   * Set productFeatureId
   *
   * @parameter long
   */
  public void setProductFeatureId(long productFeatureId) {

    this.productRequirementFeatureRelate.setProductFeatureId(productFeatureId);
  }

  /**
   * Get status
   *
   * @return String
   */
  public String getStatus() {
    return (String) this.productRequirementFeatureRelate.getStatus();
  }

  /**
   * Set status
   *
   * @parameter String
   */
  public void setStatus(String status) {

    this.productRequirementFeatureRelate.setStatus(status);
  }

  /**
   * Get remarks
   *
   * @return String
   */
  public String getRemarks() {
    return (String) this.productRequirementFeatureRelate.getRemarks();
  }

  /**
   * Set remarks
   *
   * @parameter String
   */
  public void setRemarks(String remarks) {

    this.productRequirementFeatureRelate.setRemarks(remarks);
  }

  /**
   * Get productRequirementCode
   *
   * @return String
   */
  public String getProductRequirementCode() {

    return (String) this.productRequirementFeatureRelate.getProductRequirementCode();
  }

  /**
   * Get productRequirementName
   *
   * @return String
   */
  public String getProductRequirementName() {

    return (String) this.productRequirementFeatureRelate.getProductRequirementName();
  }

  /**
   * Get productRequirementContent
   *
   * @return String
   */
  public String getProductRequirementContent() {

    return (String) this.productRequirementFeatureRelate.getProductRequirementContent();
  }

  /**
   * Get productRequirementType
   *
   * @return String
   */
  public String getProductRequirementType() {

    return (String) this.productRequirementFeatureRelate.getProductRequirementType();
  }

  /**
   * Get productRequirementLevel
   *
   * @return String
   */
  public String getProductRequirementLevel() {

    return (String) this.productRequirementFeatureRelate.getProductRequirementLevel();
  }

  /**
   * Get productFeatureCode
   *
   * @return String
   */
  public String getProductFeatureCode() {

    return (String) this.productRequirementFeatureRelate.getProductFeatureCode();
  }

  /**
   * Get productFeatureName
   *
   * @return String
   */
  public String getProductFeatureName() {

    return (String) this.productRequirementFeatureRelate.getProductFeatureName();
  }

  /**
   * Get productFeatureCanTest
   *
   * @return String
   */
  public String getProductFeatureCanTest() {

    return (String) this.productRequirementFeatureRelate.getProductFeatureCanTest();
  }

  /**
   * Get productFeatureIsKeyFeature
   *
   * @return String
   */
  public String getProductFeatureIsKeyFeature() {

    return (String) this.productRequirementFeatureRelate.getProductFeatureIsKeyFeature();
  }

  /**
   * Get productRequirementKind
   *
   * @return String
   */
  public String getProductRequirementKind() {

    return (String) this.productRequirementFeatureRelate.getProductRequirementKind();
  }

  /**
   * Get productRequirementSource
   *
   * @return String
   */
  public String getProductRequirementSource() {

    return (String) this.productRequirementFeatureRelate.getProductRequirementSource();
  }

  /**
   * Get productRequirementVersion
   *
   * @return String
   */
  public String getProductRequirementVersion() {

    return (String) this.productRequirementFeatureRelate.getProductRequirementVersion();
  }

  /**
   * Get productRequirementVersionType
   *
   * @return String
   */
  public String getProductRequirementVersionType() {

    return (String) this.productRequirementFeatureRelate.getProductRequirementVersionType();
  }

  /**
   * Get productFeatureVersion
   *
   * @return String
   */
  public String getProductFeatureVersion() {

    return (String) this.productRequirementFeatureRelate.getProductFeatureVersion();
  }

  /**
   * Get productFeatureVersionType
   *
   * @return String
   */
  public String getProductFeatureVersionType() {

    return (String) this.productRequirementFeatureRelate.getProductFeatureVersionType();
  }

  /**
   * Get productRequirementVersionId
   *
   * @return long
   */
  public long getProductRequirementVersionId() {
    return (long) this.productRequirementFeatureRelate.getProductRequirementVersionId();
  }

  /**
   * Set productRequirementVersionId
   *
   * @parameter long
   */
  public void setProductRequirementVersionId(long productRequirementVersionId) {

    this.productRequirementFeatureRelate.setProductRequirementVersionId(
        productRequirementVersionId);
  }

  /**
   * Get productFeatureVersionId
   *
   * @return long
   */
  public long getProductFeatureVersionId() {
    return (long) this.productRequirementFeatureRelate.getProductFeatureVersionId();
  }

  /**
   * Set productFeatureVersionId
   *
   * @parameter long
   */
  public void setProductFeatureVersionId(long productFeatureVersionId) {

    this.productRequirementFeatureRelate.setProductFeatureVersionId(productFeatureVersionId);
  }

  /**
   * Get productRequirementVersionStatus
   *
   * @return String
   */
  public String getProductRequirementVersionStatus() {

    return (String) this.productRequirementFeatureRelate.getProductRequirementVersionStatus();
  }

  /**
   * Get productFeatureVersionStatus
   *
   * @return String
   */
  public String getProductFeatureVersionStatus() {

    return (String) this.productRequirementFeatureRelate.getProductFeatureVersionStatus();
  }

  public int hashCode() {
    return org.apache.commons.lang.builder.HashCodeBuilder.reflectionHashCode(this);
  }

  public boolean equals(Object obj) {
    if (obj == null) {
      return false;
    } // end if

    if ((obj instanceof ProductRequirementFeatureRelateBean) == false) {
      return false;
    } // end if

    ProductRequirementFeatureRelateBean other = (ProductRequirementFeatureRelateBean) obj;

    boolean isEqual = false;

    com.ourteam.product.requirement.dao.ProductRequirementFeatureRelate
        tempProductRequirementFeatureRelate = other.convertToProductRequirementFeatureRelate();

    if (tempProductRequirementFeatureRelate == null
        || this.productRequirementFeatureRelate == null) {
      isEqual = false;
    } else if (tempProductRequirementFeatureRelate == this.productRequirementFeatureRelate
        || tempProductRequirementFeatureRelate.equals(this.productRequirementFeatureRelate)) {
      isEqual = true;
    } else {
      isEqual = false;
    }

    return isEqual;
  }

  public static ProductRequirementFeatureRelateBean[] toArray(
      com.ourteam.product.requirement.dao.ProductRequirementFeatureRelate[]
          aProductRequirementFeatureRelates) {

    return toArray(aProductRequirementFeatureRelates, null);
  }

  public static ProductRequirementFeatureRelateBean[] toArray(
      com.ourteam.product.requirement.dao.ProductRequirementFeatureRelate[]
          aProductRequirementFeatureRelates,
      IDataPopulateCallback aCallBack) {

    if (ArrayUtils.isEmpty(aProductRequirementFeatureRelates)) {
      return new ProductRequirementFeatureRelateBean[0];
    }

    int length = aProductRequirementFeatureRelates.length;

    ProductRequirementFeatureRelateBean[] beans = new ProductRequirementFeatureRelateBean[length];

    for (int i = 0; i < length; i++) {
      beans[i] = new ProductRequirementFeatureRelateBean(aProductRequirementFeatureRelates[i]);
      if (aCallBack != null) {
        aCallBack.populate(beans[i], new Object[] {aProductRequirementFeatureRelates[i]});
      }
    }

    return beans;
  }
}
